//@dart=2.12
import 'dart:convert';

import 'package:base_flutter/base_flutter.dart';
import 'package:ls_work/bad_event/response/event_equipment_list_data.dart';
import 'package:ls_work/util/ext_utils.dart';
import 'package:saas_order_meal/net/net_response/code_value_list.dart';

extension BadEventDoubleExt on double?{
  String? get toStringOrNull{
    return this==null?null:this.toString();
  }
}

extension BadEventTypeExt on num?{

  String get medicineHourName {
    ///0表示： 1小时内 1表示： 1-2小时， 2表示：2-3小时
    switch(this){
      case 0:
        return '1小时内';
      case 1:
        return '1-2小时';
      case 2:
        return '2-3小时';
      default:
        return '';
    }
  }



  String get locationName {
    ///0-床旁,卧室，1-卫生间，2-浴室，3-轮椅，4-活动区，5-其他
    switch (this) {
      case 0:
        return '床旁,卧室';
      case 1:
        return '卫生间';
      case 2:
        return '浴室';
      case 3:
        return '轮椅';
      case 4:
        return '活动区';
      case 5:
        return '其他';
      default:
        return '';
    }
  }

  String get bedrailUsageName {
    ///0未使用1仅单侧或部分使用床栏2双侧使用
    switch (this) {
      case 0:
        return '未使用';
      case 1:
        return '仅单侧或部分使用床栏';
      case 2:
        return '双侧使用';
      default:
        return '';
    }
  }

  String get yesOrNo{
    switch (this) {
      case 0:
        return '否';
      case 1:
        return '是';
      default:
        return '';
    }
  }

  String get haveOrNot{
    switch (this) {
      case 0:
        return '无';
      case 1:
        return '有';
      default:
        return '';
    }
  }

  String get findStaffTypeName {
    switch (this) {
      case 0:
        return '跌倒长者家属';
      case 1:
        return '护士';
      case 2:
        return '介护士';
      case 3:
        return '其他';
      default:
        return '';
    }
  }

  String get causePersonTypeName{
    switch (this) {
      case 0:
        return '护士';
      case 1:
        return '介护士';
      case 2:
        return '长者';
      case 3:
        return '家属';
      case 4:
        return '其他人员';
      default:
        return '';
    }
  }

  String get wrongPatternTypeName{
    ///0-遗漏未執行 1-长者錯誤 2-种类錯誤 3-剂量錯誤 4-途徑錯誤 5-時間錯誤 6-药物使用方法错误 7-药物品質异常 8-给药前或中或后监测评估错误
    /// 9-长者順從性不當 10-誊写错误 11-调配错误 12键入错误 13-其他
    switch (this) {
      case 0:
        return '遗漏未执行';
      case 1:
        return '长者错误';
      case 2:
        return '种类错误';
      case 3:
        return '剂量错误';
      case 4:
        return '途径错误';
      case 5:
        return '时间错误';
      case 6:
        return '药物使用方法错误';
      case 7:
        return '药物品质异常';
      case 8:
        return '给药前或中或后监测评估错误';
      case 9:
        return '长者顺从性不当';
      case 10:
        return '誊写错误';
      case 11:
        return '调配错误';
      case 12:
        return '键入错误';
      case 13:
        return '其他';
      default:
        return '';
    }
  }


  String comboDataName(List<CodeValueList> comboList){
    return this?.toStringOrNull().comboDataName(comboList)??"";
  }

  String equipmentName(List<EventEquipmentListData> equipmentList){
    try{
      var item = equipmentList.firstWhere((element) => element.id==this);
      return item.name??"";
    }catch(e){
      return "";
    }
  }


}
extension BadEventStringExt on String?{
  String comboDataName(List<CodeValueList> comboList){
    try{
      var item = comboList.firstWhere((element) => element.codeValue==this);
      return item.name;
    }catch(e){
      return "";
    }
  }

  String appandList(bool add,String value){
    var str = this??"";
    print("str===>${str}");
    var list = str.split(",");
    if(add){
      list.add(value);
    }else{
      list.remove(value);
    }
    list.removeWhere((element) => element.isNullOrEmpty());
    list.sort();
    return list.join(",");
  }

  String get messageManName{
    if(this.isNullOrEmpty()){
      return "";
    }
    var list = (jsonDecode(this!) as List?)??[];
    return list.map((e) => e['name']).join(",");
  }


  String get damagePartsName{
    switch(this){
      case '1':
        return '头';
      case '2':
        return '颈部';
      case '3':
        return '手';
      case '4':
        return '腿';
      default:
        return '';
    }
  }

  String get activityName {
    ///1-自由活动 2-卧床,3-轮椅,4-使用助行器/拐杖,5-可由人员扶持走动 6-受约束
    switch (this) {
      case '1':
        return '自由活动';
      case '2':
        return '卧床';
      case '3':
        return '轮椅';
      case '4':
        return '使用助行器/拐杖';
      case '5':
        return '可由人员扶持走动';
      case '6':
        return '受约束';
      default:
        return '';
    }
  }

  String get activityAnalyzeName{
    if(this.isNullOrEmpty()){
      return '';
    }else{
      var list = this!.split(",");
      return list.map((e) => e.activityName).join(",");
    }
  }
}